package com.lzm.ydpt.mvp.contract;

import com.byt.framlib.basemvp.BaseView;
import com.byt.framlib.basemvp.basebean.BaseResponseBean;
import com.byt.framlib.basemvp.basebean.ListPageBean;
import com.byt.framlib.basemvp.boby.FormBodys;
import com.lzm.ydpt.entity.mall.ProductBean;
import com.lzm.ydpt.entity.mall.ShopGoods;

import java.util.List;

import io.reactivex.Observable;

/**
 * 接口名称：XhXnHelpContract
 * 接口描述：Contract
 */
public interface MallCartContract {

    /**
     * 模型接口
     */
    interface Model {
        Observable<BaseResponseBean<ListPageBean<ShopGoods>>> onProductCartList(FormBodys formBodys);

        Observable<BaseResponseBean<Object>> onDeteleProductCart(FormBodys formBodys);

        Observable<BaseResponseBean<Object>> onShoppingCart(FormBodys formBodys);

        Observable<BaseResponseBean<ListPageBean<ProductBean>>> onShopGuessLike(FormBodys formBodys);

    }

    /**
     * 代理接口
     */
    interface Presenter {
        void onProductCartList(FormBodys formBodys);

        void onDeteleProductCart(FormBodys formBodys, List<ShopGoods> tempList);

        void onShoppingCart(FormBodys formBodys, int position, int num);

        void onShopGuessLike(FormBodys formBodys);
    }

    /**
     * 视图接口
     */
    interface View extends BaseView {
        void onProductCartList(ListPageBean<ShopGoods> cartProductList);

        void onDeteleProductCart(String msg, List<ShopGoods> tempList);

        void onShoppingCart(String msg, int position, int num);

        void onShopGuessLike(ListPageBean<ProductBean> productList);
    }
}